]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
grabHelper: Query stage for target actor instead of event.get_source()
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 25 Feb 2022 12:07:49 +0000 (13:07 +0100)
committerMarge Bot <marge-bot@gnome.org>
Fri, 4 Mar 2022 12:27:34 +0000 (12:27 +0000)
Events are going to stop containing the destinatary, so stop using this
API. Querying the stage is equivalent and ensured to be up-to-date.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2216>

js/ui/grabHelper.js

index a46bab0fa9be2d2ae3617924283cac04177d39ca..af4641014a61da4c4a64920a5a27a0f3d4460342 100644 (file)
@@ -265,9 +265,11 @@ var GrabHelper = class GrabHelper {
             return Clutter.EVENT_PROPAGATE;
         }
 
+        const targetActor = global.stage.get_event_actor(event);
+
         if (type === Clutter.EventType.ENTER ||
             type === Clutter.EventType.LEAVE ||
-            this.currentGrab.actor.contains(event.get_source()))
+            this.currentGrab.actor.contains(targetActor))
             return Clutter.EVENT_PROPAGATE;
 
         if (Main.keyboard.shouldTakeEvent(event))
@@ -279,7 +281,7 @@ var GrabHelper = class GrabHelper {
             if (press || touchBegin)
                 this._ignoreUntilRelease = true;
 
-            let i = this._actorInGrabStack(event.get_source()) + 1;
+            let i = this._actorInGrabStack(targetActor) + 1;
             this.ungrab({ actor: this._grabStack[i].actor, isUser: true });
             return Clutter.EVENT_STOP;
         }